package com.smcaiot.filesync.starter.service;

import com.smcaiot.filesync.starter.entity.Base64Param;

import java.io.InputStream;

/**
 * minio文件上传下载
 */
public interface IMyMinioService {

    /**
     * 创建一个新的存储桶
     *
     * @param bucketName 存储桶名称
     */
    boolean makeBucket(String bucketName) throws Exception;

    /**
     * 检查存储桶是否存在
     *
     * @param bucketName 存储桶名称
     * @return
     */
    boolean bucketExists(String bucketName) throws Exception;

    /**
     * 以流的形式下载一个对象
     *
     * @param bucketName 存储桶名称
     * @param objectName 存储桶里的对象名称
     * @param offset     是起始字节的位置
     * @return
     */
    InputStream getObject(String bucketName, String objectName, long offset) throws Exception;

    /**
     * 通过InputStream上传对象
     *
     * @param bucketName  存储桶名称
     * @param objectName  存储桶里的对象名称
     * @param stream
     * @param contentType
     */
    boolean putObject(String bucketName, String objectName, InputStream stream, String contentType) throws Exception;

    InputStream getMinioFile(String srcPath);

    void getMinioFile(String srcPath, String destPath);

    String uploadMinioFile(String localTmpPath, String destPath, boolean nameWithTime);

    String getFileBase64(String picPath);

    boolean base64StoreFile(String base64, String bucketName, String objectName) throws Exception;
    String base64StoreFile(Base64Param param) throws Exception;

}
